#ifndef _INPUT_H
#define _INPUT_H

//////////////
/* Hlavicky */
#include "../main.h"
//////////////

/////////////////////////////////////
/* Deklarace globalnich promennych */

/* Nasleduji prototypove identifikatory pro ruzne klavesy, zamerne je pretypujeme na zachovani portability */
#ifdef _WIN32                                 /* Windows */
const unsigned int Key_Up = VK_UP;
const unsigned int Key_Down = VK_DOWN;
const unsigned int Key_Left = VK_LEFT;
const unsigned int Key_Right = VK_RIGHT;
const unsigned int Key_Shift_L = VK_LSHIFT;
const unsigned int Key_Shift_R = VK_RSHIFT;
const unsigned int Key_Space = VK_SPACE;
#else                                          /* POSIX */
const unsigned int Key_Up = XK_Up;
const unsigned int Key_Down = XK_Down;
const unsigned int Key_Left = XK_Left;
const unsigned int Key_Right = XK_Right;
const unsigned int Key_Shift_L = XK_Shift_L;
const unsigned int Key_Shift_R = XK_Shift_R;
const unsigned int Key_Space = ' ';
#endif
/////////////////////////////////////

//////////////////////
/* Definice objektu */

/* Trida obsahujici vstupni zarizeni */
class CInput
{
public:
  unsigned int mMousePos[2];  //< Pozice mysi

	unsigned char mMouseLeft;   //< Leve tl. mysi
	unsigned char mMouseMiddle; //< Prostredni tl. mysi
	unsigned char mMouseRight;  //< Prave tl. mysi
	
	int mMouseWheelCurrent;     //< Pozice kolecka mysi
	int mMouseWheelLast;        //< Predchozi pozice kolecka mysi
	
	unsigned char mKeys[65536]; //< Stav virtualni klavesnice
};
//////////////////////

#endif
